#include<iostream>
#include<string>
#include<unistd.h>
using namespace std;


//实现x+y=res 返回错误码的实验


class Task
{
public:
    Task() //无参构造
    {}
    Task( int x, int y,char op) //传参构造
    :_x(x),
    _y(y),
    _op(op),
    _res(0),
    _exitcode(0)
    {}


    
    ~Task()
    {    
    }

    void operator()() //仿函数实现
    {
        if(_op=='+')
        {
            _res=_x+_y;


        }
        else if(_op=='-')
        {
            _res=_x-_y;


        }
        else if(_op=='*')
        {
            _res=_x*_y;


        }
        else if(_op=='/')
        {
            if(_y==0)
            {
                _exitcode=-1;
            }
            else 
            {
                _res=_x/_y;

            }
        }
        else if(_op=='%')
        {
              if(_y==0)
            {
                _exitcode=-2;
            }
            else 
            {
                _res=_x%_y;

            }

        }
    }

    string Print_oper()
    {
        return to_string(_x)+_op+to_string(_y)+"=?";
    }

    string Print_res()
    {
        return to_string(_res)+'['+to_string(_exitcode)+']';

    }


private:
    int _x;  
    int _y;
    char _op;
    int _res;
    int _exitcode;
};